<?php
namespace Home\Model;

class CommentModel extends \Think\Model
{
	//自动验证
	protected $_validate = array(
			array('fund_id', '/^\d+$/', '参数错误1', self::MUST_VALIDATE, 'regex', self::MODEL_INSERT),
			array('user_id', '/^\d+$/', '参数错误2', self::MUST_VALIDATE, 'regex', self::MODEL_INSERT),
			//TODO:可以对评论内容的长度、敏感信息等进行过滤
			array('content', 'require', '请输入评论内容', self::MUST_VALIDATE, 'regex', self::MODEL_INSERT),
	);
	
	//自动完成
	protected $_auto = array(
			array('create_time', 'time', self::MODEL_INSERT, 'function'),
			array('update_time', 'time', self::MODEL_BOTH, 'function'),
			array('agree', 0, self::MODEL_INSERT, 'string'),
			array('count', 0, self::MODEL_INSERT, 'string'),
			
			//TODO：如果有需要，可进行人工审核
			array('status', 1, self::MODEL_INSERT, 'string'),
	);
	
	/**
	 * 添加评论
	 * @author 刘新
	 */
	public function addComment($data)
	{
		//创建数据对象
		if(!$this->create($data)) return array('error' => 1, 'info' => $this->getError());
		
		//添加
		$res = $this->add();
		
		//判断结果
		if($res) return array('error' => 0, 'info' => '添加成功');
		return array('error' => 1, 'info' => '添加失败');
	}
	
	/**
	 * 查询评论
	 * @author 刘新
	 */
	public function commentList($where, $option=array(), $field=false, $order='create_time desc')
	{
		if(!isset($where['status'])) $where['status'] = 1;
		if(!$field) $field = 'id,user_id,fund_id,content,agree,count,parent_id,create_time';
		
		//分页查询
		if($option['page'] && $option['size']) $this->page($option['page'], $option['size']);
		
		//分组
		if($option['group']) $this->group($option['group']);
		
		return $this->where($where)->field($field)->order($order)->select();
	}
	
	/**
	 * 查询评论
	 * @author 刘新
	 */
	public function commentOne($where, $field = false)
	{
		if(!isset($where['status'])) $where['status'] = 1;
		if($field === false) $field = 'id,user_id,fund_id,content,agree,count,parent_id';
		return $this->where($where)->field($field)->find();
	}
	
	/**
	 * 过滤文本内容
	 * @param unknown $s
	 */
	public function validateLength($content)
	{
		if(mb_strlen($s)<10){
			return false;//输入字符长度过短
		}
		return true;
	}
}